The present invention relates to presentation of multimedia events over a data processing network and, more particularly, to server side allocation of network bandwidth during a multimedia session comprising a layered encoded, multicast, push source and a pull source intended for multiple receivers having heterogeneous reception bandwidth.
The increased capacity and speed of the Internet and local network access have increased the practicality and popularity of delivering video conferencing, presentations, and other multimedia events over the Internet. On the other hand, the character of multimedia events and the structure of the Internet makes Internet delivery of multimedia events problematic. First, a multimedia event comprises several program elements or media, each characterized by its own qualities, delivery mechanism, and priority or importance to the presentation. Typically, a multimedia event includes audio and video, but it may also include image, text, and data elements. The various media may be classified as either a push medium where a server controls the flow and rate of data transfer or a pull medium where the data transfer rate is controlled by a client. An example of a pull medium is the HyperText Transfer Protocol (HTTP) used to transfer images, text, and, in some cases, data on the Internet. Typically, the presentation of images, text, and data is discontinuous during a multimedia session, but the priority of the data transfer is high, reliable delivery is desirable, and the bandwidth for the transmission can vary. Real-time audio and video data are typically transmitted through a multicast architecture as push media. The push media protocols include the Real-Time Transport (RTP) protocol and the SGI (Silicon Graphics Inc.) MediaBase protocol used primarily for video-on-demand services. RTP typically operates over the User Datagram Protocol (UDP). While video has a relatively low priority, the priority of audio is high. Presentation of both audio and video is typically continuous and data rates are relatively high. While RTP/UDP provides receivers with information such as the payload type and a time stamp for reconstructing the data in real time, it does not provide any quality of service guarantees. Taken together, the elements of a multimedia event generate high data rates that can vary substantially during a session.
A multimedia event is also commonly an event of interest to multiple receivers and the audio and video elements are typically multicast. Multicasting enables a source to send data packets to a special multicast IP (Internet Protocol) group address that identifies a group of interested receivers. Receivers that have joined the appropriate multicast group can read the data sent to the group address. Multicasting permits a single data stream to be distributed to a number of receivers without a substantial increase in the bandwidth over that required to transmit the data to a single receiver. While the bandwidth at the source may be more than adequate for the multimedia event, the Internet is heterogeneous, comprising many connected networks, and the reception bandwidth (the bandwidth of the communication channel between a source and an individual receiver) can vary substantially between individual receivers of the multimedia event. In addition, the reception bandwidth can vary substantially over time for a particular receiver. The differences in reception bandwidth available to individual receivers means that transmission of the multimedia data at a single data rate is unlikely to be satisfactory to many of the receivers of the multicast. Allocating data rates for a plurality of media so as to preserve the integrity and character of a multimedia event and maximize the data rate at each receiver, while avoiding network congestion and data loss, is a difficult problem.
A solution to the problem of heterogeneous reception bandwidth for multicast push media is the use of layered multicast combining layered data compression and heterogeneous multipoint communication. Data is encoded in several layers that can be incrementally combined when the medium is reconstructed at the receiver to provide progressively higher levels of quality of the reconstructed medium. For example, for video a base layer is encoded at a data rate that will not exceed a minimum threshold bandwidth but produce video of minimally acceptable quality at the receiver. Each additional layer improves the quality of the reconstructed video at the expense of a higher data rate. Layered multicast can be used with any push medium but is most useful for encoding video. The hierarchical dependence of the layers means that the base layer is more important than higher layers.
The multicast server simultaneously transmits the several hierarchically layered data streams to several multicast group addresses. A receiver can tune the quality of the reconstructed medium to its available reception bandwidth by adding or dropping layers from its reception. One protocol used to control layer subscription for layered multicast is the Receiver-driven Layered Multicast (RLM) protocol. Packet loss is used to determine when the receiver is over subscribed. If packet loss greater than a specified threshold is detected over a time interval known as the detection time the receiver drops the highest layer to which it is subscribed. On the other hand, in the absence of significant packet loss, a receiver will periodically experiment by joining a higher layer group until the receiver detects a significant packet loss.
While layered multicast provides a bandwidth allocation solution for push media such as video and audio, pull media, such as images, text, and data, are often important to a meaningful multimedia event and layered multicast does not provide a method of allocating bandwidth when both pull and push media are being transmitted. What is desired, therefore, is a method of allocating bandwidth during a multimedia session comprising a pull medium and a layered push medium that is multicast over a network to clients having heterogeneous reception bandwidth.